package co.edu.udea.herbario.bl;

import co.edu.udea.herbario.dao.GeneroDao;
import co.edu.udea.herbario.dto.Genero;
import co.edu.udea.herbario.dao.cnf.FactoryDao;
import java.util.ArrayList;

/**
 * Clase que contiene la validacion del formato de los datos de entrada para obtener la informacion
 * de un genero
 *
 * @author Marcela Colorado
 */
public class InformacionGenero
{
    /**
     * Consulta la informacion especifica de genero: codigo, nombre, familia a la que pertenece
     * y fecha de ingreso al herbario
     *
     * @param idGenero es el identificador del genero sobre el cual se desea ver la informacion
     *
     * @return retorna un objeto de tipo Genero
     */
    public Genero obtenerGenero(int idGenero)
    {
        //Creacion de un objeto tipo GeneroDao a traves del FactoryDao
        GeneroDao generoDao = FactoryDao.obtenerInstancia().getGeneroDao();
        Genero genero = null;

        //Validacion de datos de entrada
        if(!"".equals(idGenero))
        {
            try
            {
                //Se obtiene el genero asociado al consecutivo pasado como parametro
                genero = generoDao.obtenerGenero(idGenero);
            }
            catch(NumberFormatException e)
            {
                e.printStackTrace();
            }
        }

        return genero;
    }

    /**
     * Metodo que obtiene los generos que contengan la cadena de caracteres pasada como parametro
     * @param valor es la cadena de caracteres que deben contener los nombres de los generos recuperados
     * @return
     */
    public ArrayList obtenerGeneros(String valor)
    {
        GeneroDao generoDao = FactoryDao.obtenerInstancia().getGeneroDao();
        ArrayList <String> generos = null;
        generos = (ArrayList<String>) generoDao.obtenerNombresGeneros(valor);

        return generos;
    }
}
